#ifndef CUBE_SCENEMANAGER_H_
#define CUBE_SCENEMANAGER_H_

struct lua_State;
class Scene;

class SceneManager
{
friend class Core;

public :
	typedef std::map< std::string, Scene* >		SceneList;
	typedef SceneList::iterator					SceneListIter;

	bool			Initialize();
	void			Release();
	void			Register( const std::string& name, const std::string& path );
	void			Unregister( const std::string& name );

	Scene*			GetCurrentScene(){ return _currentScene; }
	Scene*			GetScene( const std::string& name );

	void			SetCurrentScene( const std::string& name );

private :
	SceneManager();
	~SceneManager();

	lua_State*		_L;
	Scene*			_currentScene;
	SceneList		_lists;
};

#endif